- Print
- DarkLight
Returns category metadata including nested articles and child categories. Requires ViewCategories permission and the caller must pass the ACL check for the requested category. Returns 404 if the category does not exist or the caller lacks access. Use GET /v3/projects/{projectId}/categories/{categoryId}/content to retrieve the actual body content separately.
All V3 endpoints require a Bearer token. Generate tokens in the Document360 portal under Settings > API Tokens. Tokens are project-scoped, require the customerApi scope, and do not expire by default. Tokens can be revoked at any time from the portal. Include the token in every request: Authorization: Bearer <your-token>. Alternatively, use the Authorize button below to sign in via OAuth2 Authorization Code flow with PKCE.
The unique identifier of the project. Retrieve project IDs from GET /v3/projects.
The unique identifier of the category. Retrieve category IDs from GET /v3/projects/{project_id}/categories.
Category found and returned successfully.
Returns the specified category with its child categories and articles.
{
"data": {
"id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d",
"name": "Getting Started",
"description": "Guides to help new users get up and running quickly.",
"project_version_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6",
"order": 0,
"parent_category_id": null,
"hidden": false,
"icon": "icon-book",
"slug": "getting-started",
"category_type": 0,
"created_at": "2025-03-01T09:00:00Z",
"modified_at": "2025-07-15T14:30:00Z",
"status": 3,
"content_type": 0,
"current_workflow_status_id": "b7e2a1d4-3f56-4c89-9d0e-1a2b3c4d5e6f",
"articles": [],
"child_categories": [
{
"id": "d7e8f9a0-b1c2-3d4e-5f6a-7b8c9d0e1f2a",
"name": "Installation",
"description": "Step-by-step installation instructions.",
"project_version_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6",
"order": 0,
"parent_category_id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d",
"hidden": false,
"icon": "icon-download",
"slug": "installation",
"category_type": 1,
"created_at": "2025-03-02T10:00:00Z",
"modified_at": "2025-06-20T12:00:00Z",
"status": 3,
"content_type": 0,
"current_workflow_status_id": null,
"articles": [],
"child_categories": []
}
]
},
"success": true,
"request_id": "req_abc123def456",
"errors": null,
"warnings": null
}Generic API response wrapper containing typed data.
Response data payload.
Unique identifier of the category.
Name of the category.
Description of the category.
Project version this category belongs to. Corresponds to a version from GET /v3/projects/{projectId}/project-versions.
Sort order within the parent category.
Identifier of the parent category, if any. Retrieve category IDs from GET /v3/projects/{projectId}/categories.
Whether the category is hidden from readers.
Icon identifier for the category.
URL-friendly slug for the category.
Type of the category. Possible values: 0 = Folder, 1 = Page, 2 = Index.
Date and time the category was created.
Date and time the category was last modified.
Publication status of the category. Possible values: 0 = Draft, 3 = Published.
Content format type. Possible values: 0 = Markdown, 1 = Wysiwyg (rich text), 2 = Block.
Current workflow status identifier, if workflows are enabled. Retrieve available statuses from GET /v3/projects/{projectId}/workflow-statuses.
Articles belonging to this category.
Summary representation of an article.
The unique identifier of the article.
The title of the article.
The latest published version number, or null if the article has never been published.
The latest version number including drafts.
Whether the article is hidden from readers.
The publication status of the article. Possible values: 0 = Draft, 3 = Published.
The display order of the article within its category.
The URL slug for the article.
The editor content type of the article. Possible values: 0 = Markdown, 1 = Wysiwyg (rich text), 2 = Block.
The translation status of the article. Possible values: 0 = None, 1 = NeedTranslation, 2 = Translated, 3 = InProgress.
Whether the article is shared across multiple projects.
The date and time the article was created.
The date and time the article was last modified.
The user ID of the original article creator. Corresponds to a user from GET /v3/projects/{projectId}/users.
The current workflow status identifier. Retrieve available statuses from GET /v3/projects/{projectId}/workflow-statuses.
The full URL of the article.
Whether the article is excluded from external search engine indexing.
The security visibility level of the article. Possible values: 0 = Public (visible to all), 1 = Protected (authenticated users only), 2 = Mixed.
Nested child categories.
Category with child categories and articles.
Whether the API request was successful.
Unique identifier for request tracing and correlation.
List of errors if the request failed.
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
List of non-fatal warnings from the request.
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Authentication token is missing or invalid.
Authentication token is missing or invalid.
{
"type": "https://developer.document360.com/errors/unauthorized",
"title": "Unauthorized.",
"status": 401,
"detail": "The authentication token is missing or has expired.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "UNAUTHORIZED",
"message": "Bearer token is missing or invalid.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Category not found.
The requested resource was not found.
{
"type": "https://developer.document360.com/errors/not-found",
"title": "Not Found.",
"status": 404,
"detail": "The requested resource does not exist or has been deleted.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
Rate limit exceeded. Retry after the duration specified in the Retry-After header.
Rate limit exceeded.
{
"type": "https://developer.document360.com/errors/too-many-requests",
"title": "Too Many Requests.",
"status": 429,
"detail": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "TOO_MANY_REQUESTS",
"message": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
An unexpected server error occurred.
Unexpected server error.
{
"type": "https://developer.document360.com/errors/internal-error",
"title": "Internal Server Error.",
"status": 500,
"detail": "An unexpected error occurred. Please try again or contact support.",
"instance": null,
"trace_id": "req_abc123def456",
"errors": [
{
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected error occurred.",
"field": null,
"details": null
}
],
"warnings": null
}RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json
URI reference identifying the error type (links to documentation).
Short human-readable summary of the error type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI of the request that generated the error.
Request trace identifier for correlation.
Structured list of specific errors (extension field).
Represents an error returned by the API.
Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).
Human-readable error message.
The request field that caused the error, if applicable.
Additional context about the error.
Non-fatal warnings (extension field).
Represents a non-fatal warning from the API.
Machine-readable warning code.
Human-readable warning message.
